package cn.tedu.spring6.service.impl;

import cn.tedu.spring6.dao.UserDao;
import cn.tedu.spring6.dao.impl.UserDaoImplForMySQL;
import cn.tedu.spring6.dao.impl.UserDaoImplForOracle;
import cn.tedu.spring6.service.UserService;
/* 1. OCP开闭原则
       * 什么是OCP？
           OCP是软件七大开发原则当中最基本的一个原则：开闭原则
           对什么开？对扩展开放。
           对什么闭？对修改关闭。
       * OCP原则是最核心的，最基本的，其他的六个原则都是为这个原则服务的。
       * OCP开闭原则的核心是什么？
           只要你在扩展系统功能的时候，没有修改以前写好的代码，那么你就是符合OCP原则的。
           反之，如果在扩展系统功能的时候，你修改了之前的代码，那么这个设计是失败的，违背OCP原则。
       * 当进行系统功能扩展的时候，如果动了之前稳定的程序，修改了之前的程序，之前所有程序都需要进行重新测试。这是不想看到的，因为非常麻烦。*/
      /*2. 依赖倒置原则（DIP原则）
        * 什么是依赖倒置原则？
             面向接口编程，面向抽象编程，不要面向具体编程。
        * 依赖倒置原则的目的？
             降低程序的耦合度，提高扩展力。
        * 什么叫做符合依赖倒置？
             上 不依赖 下，就是符合。
        * 什么叫做违背依赖倒置？
             上 依赖 下，就是违背。
             只要“下”一改动，“上”就受到牵连。*/
public class UserServiceImpl implements UserService {
   // private UserDao userDao = new UserDaoImplForMySQL();
    //修改为：（但违背了OCP开辟原则和DIP原则）
    //private UserDao userDao = new UserDaoImplForOracle();
    private UserDao userDao;
    /**
     * 删除用户信息
     */
    @Override
    public void delectUser() {
        userDao.delectById();
    }
}
